<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>[]方括号</title>
</head>

<body>
  <script>
    // 表示有一系列字符可供选择，只要匹配其中一个就可以了【多选1】
    // /[abc]/

    var rg = /[abc]/; // 只要包含有a 或者 包含有b 或者包含有c 都返回为true
    console.log(rg.test('andy'));//true
    console.log(rg.test('baby'));//true
    console.log(rg.test('color'));//true
    console.log(rg.test('red'));//false
    // -----------------------------------------------------------------------------------
    var rg1 = /^[abc]$/; // 三选一 只有是a 或者是 b  或者是c 这三个字母才返回 true
    console.log(rg1.test('aa'));//false
    console.log(rg1.test('a'));//true
    console.log(rg1.test('b'));//true
    console.log(rg1.test('c'));//true
    console.log(rg1.test('abc'));//false
    // ----------------------------------------------------------------------------------
    var reg = /^[a-z]$/ //26个英文字母任何一个字母返回 true  - 表示的是a 到z 的范围  
    console.log(reg.test('a'));//true
    console.log(reg.test('z'));//true
    console.log(reg.test('A'));//false

    // var reg = /^[a-zA-Z]$/   //必须是a-z或者A - Z
    // var reg = /^[a-zA-Z0-9]$/  //必须是a-z或者A - Z或者0 - 9
    // var reg = /^[a-zA-Z0-9_-]$/  //必须是a-z或者A - Z或者0 - 9或者是_ 或者 -（'-'尽量要往后放）
    // -----------------------------------------------------------------------------------
    //取反 方括号内部加上 ^ 表示取反，只要包含方括号内的字符，都返回 false 。
    var reg2 = /^[^a-zA-Z0-9_-]$/;// 取反

    console.log(reg2.test('a'));//false
    console.log(reg2.test('A'));//false
    console.log(reg2.test('9'));//false
    console.log(reg2.test('*'));//true
    console.log(reg2.test('!'));//true
    console.log(reg2.test('*!'));//false

   // /^[^a-z]$/：两个 ^，括号外面的是便边界，括号里面的是取反的含义
  </script>
</body>

</html>